package com.rc.saas.tenant.service.transfer;

import com.github.pagehelper.PageInfo;
import com.rc.saas.tenant.base.BaseService;
import com.rc.saas.tenant.common.vo.TResponse;
import com.rc.saas.tenant.mapper.transfer.MemberRefundApplyMapper;
import com.rc.saas.tenant.model.member.MemberAccount;
import com.rc.saas.tenant.model.member.MemberInfo;
import com.rc.saas.tenant.model.tenant.Tenant;
import com.rc.saas.tenant.model.tenant.TenantUser;
import com.rc.saas.tenant.model.transfer.MemberRefundApply;
import com.rc.saas.tenant.model.transfer.MemberRefundApplyExample;
import com.rc.saas.tenant.model.transfer.TenantTransfer;
import com.rc.saas.tenant.vo.transfer.MemberRefundApplyExportVo;
import com.rc.saas.tenant.vo.transfer.MemberRefundApplySearch;
import com.rc.saas.tenant.vo.transfer.MemberRefundApplyVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * Created by Sven on 2021/08/14
 */
public interface MemberRefundApplyService extends BaseService<Long, MemberRefundApply, MemberRefundApplyExample, MemberRefundApplyMapper> {

    PageInfo<MemberRefundApplyVo> listPageMemberRefundApply(MemberRefundApplySearch memberRefundApplySearch);

    TResponse updateMemberRefundApplyStatus(MemberRefundApply memberRefundApply, MemberAccount memberAccount, String status, MemberInfo memberInfo, Tenant tenant);

    List<MemberRefundApplyExportVo> exportMemberRefundApply(MemberRefundApplySearch memberRefundApplySearch);

    TResponse batchUpdateMemberRefundApplyStuts(Object[] refundApplyAry, String status, String remark, TenantTransfer tenantTransfer, HttpServletRequest request);

    TResponse updateByAliTransfer(TenantUser user, Long memberRefundApplyId, String status, String remark);

    MemberRefundApply selectByOutOrderNo(String outOrderNo);
}
